#ifndef __ZAPI_SYSTEM_H__
#define __ZAPI_SYSTEM_H__

struct SEMAPHORE_STRUCT{
    char SemSize[40];
};
typedef struct SEMAPHORE_STRUCT ZAPI_SEM;
typedef struct ZAPI_System {
    void (*init_ZAPI)(
                Uint32 (*PSendAndWait_func)(void* D, int Handle),
                Uint32 (*PSend_func)(void* D, int Handle),
                void (*NotifyDzEventByIsr)(Uint32 event, Uint32 state),
                void *ptz);
    int (*vsi_c_psend)(void *ptr, int Handle);
    void (*puts)(const char *str);
    void (*allDevicesPowerOn)(void);
    void (*allDevicesShutdown)(void);
    void (*LCDSleep)(void);
    void (*LCDWakeup)(void);
    int (*CreateSem)(ZAPI_SEM *pSem, char *name, int count);
    int (*ObtainSem)(ZAPI_SEM *pSem);
    int (*ReleaseSem)(ZAPI_SEM *pSem);
    void (*GetRtcTime)(void *rtcTime);
    void (*SetDBPort)(int port);
} ZAPI_System;

#endif // __ZAPI_SYSTEM_H__
